知易行难
请输入标题 bcdef
这几天应一位工大师兄要求写关于股票评论的爬虫,进而能对评论文本进行分析,发现投资价值。
这个任务很有现实应用价值,我也很感兴趣,一开始觉得这多简单 啊。
爬虫会写,文本也会分析,那一组装不就完事了嘛。于是很爽快同意了,结果忙活了将近一周,最后在最开始的爬数据这关卡住了。雪球网太敏感了,我发送几十次请求就被封,这可咋整!!!
这网站太难爬了,这也证明自己水平还是没到,对于反扒措施严密的网站,大邓无能为力。还是先精耕细作,提高自己的能力,毕竟学python连一年还没到。
请输入标题 abcdefg
任务说明
请输入标题 bcdef
爬取对象:雪球网
要求:同时对多只股票当天的评论进行抓取
分析难点:
1、要同时对多只股票评论界面进行访问,要用到多进程。
2、并发访问(同时一个网站多个网址进行访问),容易被封,需要使用代理IP
请输入标题 abcdefg
雪球网址分析
请输入标题 bcdef
打开一只股票(如“格力电器”)的网址,
https://xueqiu.com/S/SZ000651
打开评论界面
我们知道,像金融领域网站一般都是很有价值的,那么他们的网站肯定是爬虫重点的访问对象。网站肯定不简单,很大的可能性是动态网页。
打开开发者工具,审查翻页时候的请求信息,
(看下图)发现 网页上某评论 与 访问可疑网址时返回的信息对应起来,说明可疑网址就是我们想要找到网址信息。
网址在下图
https://xueqiu.com/statuses/search.json?count=10&comment=0&symbol=SZ000651&hl=0&source=user&sort=time&page=2&_=1490931772156
所以我们只要改变symbol和page就可以对不同股票的不同评论页面进行访问
请输入标题 abcdefg
初始代码
请输入标题 bcdef
对一个股票的访问请求成功了,那么下面我们要构造一个雪球类,里面有访问单个股票的方法,也有多进程访问多只股票的方法。
多进程
使用多进程,实现同时对多只股票的访问,这里用到mutiprocessing库。
python中的多线程貌似没啥用,我这里就用了多进程。其实多进程多线程都是为了提高效率,不必要太较真到底用多线程还是多进程,会用就好,以后再深究哪个效率高。
这里我其实也不太懂,我只是代码的搬运工,从网上找了些代码依次试了试。
我们构造好一个爬数据的函数后(比如我这里第一个函数是GetData),将该函数代入到多进程代码中
上述代码实现同时对多个股票评论页面进行抓取。
运行一下
如何使用代理
请输入标题 bcdef
上面的代码访问多了,还是会被封,所以今天我特意在这个网站上花了9元买了一天的代理
http://www.xdaili.cn/
点击生成api
可以先提取看看访问这个api返回的是什么
我们只需要写一个访问该api的函数,返回20个代理ip。
增加代理,访问该股票依旧能获得评论数据,说明代理正常运行。如下图
但是等自己大规模运行后,你看到的是这样的图,此刻大邓内心是崩溃的。这雪球网忒难对付!!!
更多内容
大数据
爬虫
【视频】有了selenium,小白也可以自豪的说:“去TMD的抓包、cookie”
【视频】快来get新技能--抓包+cookie,爬微博不再是梦
文本分析
神奇的python
由于篇幅限制,
想看更多代码可回复“雪球网”,即可获得项目的网盘资源
请输入标题 abcdefg